/**
 * 值不等于undefined或null，则条件为真
 */
function isDef(value) {
  return value !== undefined && value !== null
}

/**
 * 值等于任意一个，则条件为真
 */
function isUndef(value) {
  return value === undefined || value === null
}

/**
 * 值
 */
function getDefValue(value, _default) {
  if (isUndef(value)) {
    return _default
  }
  return value
}

/**
 * 如果等于true，则条件为真
 */
function isTrue(value) {
  return value === true
}

/**
 * 如果等于false，则条件为真
 */
function isFalse(value) {
  return value === false
}

/**
 * 密码校验，6-20位密码，至少使用字母、数字、符号中的2种组合
 */
function password(value) {
  return /^[a-zA-Z\d\-_&:;\'<>,=%`~!@#\(\)\$\^\*\+\|\{\}\[\]\.\?\/\\]{6,20}$/.test(value)
}

/**
 * 引入第三方js文件
 */
function createScript(src) {
  const s = document.createElement('script')
  s.type = 'text/javascript'
  s.src = src
  const scriptElement = document.body.appendChild(s)
  return scriptElement
}
/**
 * 判断手机型号
 */
function getSystemInfo() {
  var isIOS = ''
  uni.getSystemInfo({
    success: (res) => {
      if (res.system.indexOf('iOS') != -1) {
        isIOS = true
      } else {
        isIOS = false
      }
    },
  })
  return isIOS
}
/**
 * 获取指定范围随机数
 */
function randomNumber(min = 0, max = 10) {
  return Math.floor(Math.random() * (max - min + 1)) + min
}

function array(value) {
  if (typeof Array.isArray === 'function') {
    return Array.isArray(value)
  } else {
    return Object.prototype.toString.call(value) === '[object Array]'
  }
}

/**
 * 数组
 */
function inArray(search, array) {
  for (var i in array) {
    if (array[i] == search) {
      return true
    }
  }
  return false
}

//判断是否在微信中
const isWechat = () => {
  var ua = window.navigator.userAgent.toLowerCase()
  if (ua.match(/micromessenger/i) == 'micromessenger') {
    console.log('是微信客户端')
    return true
  } else {
    console.log('不是微信客户端')
    return false
  }
}

function hexToRgba(color, alpha = 100) {
  alpha = alpha / 100
  color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color
  let r = parseInt(color.slice(0, 2), 16)
  let g = parseInt(color.slice(2, 4), 16)
  let b = parseInt(color.slice(4, 6), 16)
  return 'rgba(' + r + ', ' + g + ', ' + b + ', ' + alpha + ')'
}

export default {
  isDef,
  isUndef,
  getDefValue,
  isTrue,
  isFalse,
  password,
  createScript,
  getSystemInfo,
  randomNumber,
  array,
  inArray,
  isWechat,
  hexToRgba,
}
